﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PluginsAPI {
	/// <summary>
	/// Interfejs ILog jest przeznaczony dla pojedyńczego wydarzenia w systemie logowania zdarzeń.
	/// </summary>
	public interface ILog {
		//ILog(LogType logType, DateTime time, string content);
		/// <summary>
		/// Pole 'Type' określa typ zdarzenia.
		/// </summary>
		LogType Type { get; }
		/// <summary>
		/// Pole 'Time' określa czas w jakim wydarzyło się zdarzenie.
		/// </summary>
		DateTime Time { get; }
		/// <summary>
		/// Pole 'Content' zawiera opis zdarzenia.
		/// </summary>
		string Content { get; }
	}

	/// <summary>
	/// Typ 'LogType' zawiera listę typów zdarzeń. Liczba określa odwrotny priorytet/wagę typu zdarzenia.
	/// </summary>
	public enum LogType : int {
		/// <summary>
		/// Typ 'Info' oznacza informację (np. zalogowano, wylogowano itp.).
		/// </summary>
		Info = 3,
		/// <summary>
		/// Typ 'Warning' oznacza ostrzeżenie (np. hasło nieprawidłowe, nie udało się wysłać pliku itp.).
		/// </summary>
		Warning = 2,
		/// <summary>
		/// Typ 'Critical' oznacza zdarzenie krytyczne przez które wystąpił lub może wystąpić błąd. (np. serwery są nieosiągalne, pliki uszkodzone itp.).
		/// </summary>
		Critical = 1,
	}
}